<?php
namespace Org\File;
class File {
    /**
     * 获取目录 文件
     * 1 文件
     * 2 文件夹
     * 3.未知
     */
   public function getDirs($path){
      if(is_file($path)){
         return;
      }
      $rootPath=$path;
//      $data= scandir($path); scandir 在centos上无法使用
      $result=opendir($path);
      $data=array();
      while($file=readdir($result)){
         array_push($data,$file);
      }
      foreach($data as $k=>$v){
         if(is_file($v)||preg_match("/\\.\\w+/",$v)){
            $data[$k]=[
               'rootName'=>$rootPath.'/'.$v,
               'fileName'=>$v,
               'type'=>1,
            ];
         }else{
            if($v=='.'){
               $data[$k]=[
                   'rootName'=>$rootPath,
                   'fileName'=>$v,
                   'type'=>2,
               ];
            }else if($v=='..'){
               $data[$k]=[
                   'rootName'=>dirname($rootPath),
                   'fileName'=>$v,
                   'type'=>2,
               ];
            }else{
               $data[$k]=[
                   'rootName'=>$rootPath.'/'.$v,
                   'fileName'=>$v,
                   'type'=>2,
               ];
            }

         }
      }
      return $data;
   }

   public function openFile($path){
      $string=file_get_contents($path);
      return $string;
   }

   /**
    * 字符编码监测
    * @param $file
    * @param $status //是字符串还是文件
    * @return string
    */
   public function detect_encoding($file,$status){
      $list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1');
      $str=$file;
      if(!$status){
          $str=file_get_contents($file);
      }
      $ascll=mb_detect_encoding($str,$list);
      $code=$ascll;
      if($ascll=='CP936'){
         $code='GBK';
      }
      return $code;

   }

   public function  convert($path){
      if(!empty($path)){
     $string= file_get_contents($path);
      $result=mb_convert_encoding($string,'UTF-8','auto');
       return file_put_contents($path,$result);
      }
      return false;
   }


   public function fileSave($text,$file){
      return file_put_contents($file, $text);
   }
}